معرفی زبان های برنامه نویسی
ابر کامپیوتر
به وبلاگ ابر کامپیوتر سامی خوش آمدید

 

خیلی ها ممکن است سالها فقط روی اینکه چه زبانی را انتخاب کنند وقت بگذارند و هیچگاه برنامه نویسی را شروع نکنند! واقعیت این است که همان طور که هر کسی را بهر کاری ساختند، هر زبانی را برایی ساختند! هر زبان برنامه نویسی برای کار خاصی مناسبتر است و باید بسته به نیاز خودمان، زبان مناسب را انتخاب کنیم. واقعیت مهمتر این است که آنچه اهمیت دارد، یادگرفتن یک زبان برنامه نویسی است، چرا که وقتی یک زبان را خوب یاد گرفتید، یادگیری سایر زبانها، به یک سرگرمی مفرح تبدیل می‌شود!

کلا زبانهای برنامه نویسی را به دو دسته مهم می‌توان تقسیم کرد:

زبانهای برنامه نویسی وب و زبانهای برنامه نویسی دسکتاپ

زبانهای برنامه نویسی دسک تاپ برای تولید نرم افزارهای کاربردی مثل برنامه های آفیس، نرم افزارهای اتوماسیون اداری، نرم افزارهای چند رسانه ای و هر چیزی  دیگری که فکرش را بکنید! و بتوان روی کامپیوتر شخصی اجرا کرد، استفاده می شوند. از سوی دیگر زبانهای برنامه نویسی وب به طور خاص برای تولید وب سایتهای پویا و نرم افزارهای تحت وب استفاده می شوند. در هر دو گروه زبانهای متعددی وجود دارد که هر کدام مزایا و معایبی دارد که به معرفی آن ها می پردازیم:

زبانهای برنامه نویسی وب

زبان های برنامه نویسی وب خود به ۲ دسته تقسیم می شوند :

الف)Static  (ثابت)

ب)Dynamic  (پویا)

در مورد سایت های ثابت (استاتیک) بهتره که از Html استفاده کنید و کمی هم CSS  البته اینگونه سایت ها همونجور که از اسمشون پیداست ثابت هستند.

یعنی نمیشه کاری کرد که مثلا کاربر توشون ثبت نام کنه و برای کاربر های ثبت نام شده امتیازاتی در نظر گرفت و برای همه یکسان نمایش داده می شود.

- ولی سایت های پویا (داینامیک) این محدودیت ها رو ندارد و اگه کاملا حرفه ای باشید می توانید همه کار کنید مثلا سایتتون قابلیت ثبت نام کاربر ها رو داشته باشه و برای هر کاربر در صحفه وب اطلاعات خاص و متفاوت را نمایش دهید یا اطلاعات اونا رو در بانک اطلاعاتی سایت خود ثبت کنید و …

حال به معرفی و مقایسه ی زبان های تحت وب می پردازیم :

1- html (اچ تی ام ال)

Html مادر همه ی زبان های برنامه نویسی تحت وب هست . یعنی اولین زبانی رو که حتما باید یاد بگیریم html هستش . ما تو این زبان میتونیم صفحه ای رو بسازیم که اطلاعات متنی و تصویری رو نشون بده . فقط همین .

2- css (سی اس اس)

از CSS برای قلب بندی عناصر صفحه در html استفاده می شود. برای مثال با آن می توان برای قسمتهای مختلف در صفحه تصویر زمینه تعیین کرد، فونت آنها را تغییر داد، رنگ متن ها را تغییر داد و بسیاری از قابلیتهای دیگر که قبلاً در HTML وجود نداشت با CSS در دسترس طراحان قرار می گیرد.

3- java script (جاوا اسکریپت)

جاوا اسکرپت یک زبان اسکرپت نویسی تحت وب است که برای افزایش پویایی صفحات HTML استفاده می شود. از این زبان می توان برای ارزیابی اعتبار فرمهای HTML قبل از ارسال به سرور، شناسایی مرورگر کاربران، ایجاد انواع منو ها و بسیاری کارهای دیگر استفاده کرد.می توان کدهای جاوا اسکرپت را به صورت تعبیه شده در صفحات HTML استفاده کرد و یا کدهای جاوا اسکرپت را در یک فایل جداگانه با پسوند js. ذخیره کرد ولی در هر صورت یان فایلها هم باید توسط یک صفحه HTML فراخوانی شده و نتیجه آنها در صفحات HTML نمایان خواهد شد.

4- php (پی اچ پی)

پی‌اچ‌پی (PHP) یکی از پر طرفدارترین زبان‌های پردازه‌نویسی (اسکریپتینگ) متن باز (Open Source) است که بیشتر برای طراحی برنامه‌های سمت سرور در وب‌گاه‌های پویا (Dynamic) مورد استفاده قرار می‌گیرد. PHP مخفف PHP: Hypertext Preprocessor (پیش‌پردازنده فرامتن) می‌باشد. پی‌اچ‌پی در سال ۱۹۹۴ ایجاد شد. رسموس لردورف (Rasmus Lerdorf) ایجاد کننده اولیه آن بوده است ولی در طی زمان این زبان برنامه‌سازی، توسط سایر کارشناسان و برنامه‌نویسان تکمیل گردیده و به شکل کنونی آن درآمده‌است.

پی‌اچ‌پی از زبان‌های پردازه‌نویسی تحت وب است. ساختار این زبان بسیار شبیه زبان سی (C) و زبان برنامه‌نویسی پرل (Perl) می‌باشد. شکل پذیری فوق العاده آن و نیز همگونی با اغلب بانک‌های اطلاعاتی از قبیل MySql قدرت آن را افزایش داده است.

مشهورترین نرم‌افزارهای(بسته های) ایجاد شده با پی‌اچ‌پی عبارت‌اند از phpBB ، SMF ، Mambo ، Joomla ، PHPNuke ، mybb و مدیاویکی (MediaWiki) (که این وب‌گاه با آن طراحی شده). پی‌اچ‌پی می‌تواند جایگزینی برای زبان‌های ASP.NET و JSP و Perl باشد. همچنین یکی از بهترین نمونه‌های برنامه‌نویسی php در سطح وسیع سایت فیس‌بوک است.

سادگی استفاده از پی‌اچ‌پی و شباهت آن به زبان سی و پرل (و از نسخه ۵ آن به جاوا) باعث شده که اغلب برنامه نویسان با تجربه در کوتاه‌ترین زمان ممکن برنامه‌های کاملی را ایجاد کنند.

پی‌اچ‌پی تنها یک زبان پردازه‌نویسی نیست و با استفاده از PHP-GTK می‌توان برای طراحی برنامه‌های با ظاهر گرافیکی (GUI) و همچنین طراحی برنامه‌های خط فرمان شبیه پرل یا پایتون (Python) از آن استفاده کرد.

پی‌اچ‌پی امکان استفاده از انواع مختلفی از پایگاه‌های داده را از جمله MySQL، اوراکل، IBM DB۲ ،Microsoft SQL Server ،PostgreSQL و SQLite با دستورهایی ساده فراهم می‌سازد.

پی‌اچ‌پی روی بیشتر سیستم‌عامل‌های معروف از جمله لینوکس، یونیکس، ویندوز و Mac OSX و با اغلب کارگزارهای وب (Web Server) معروف، قابل اجراست.

5- asp.net

NET نسل بعدی Active Server Pages یا ASP است که توسط شرکت میکروسافت ارائه شده است. این محصول توسط میکروسافت بعنوان شاخص اصلی فناوری در ساخت سایتهای وب در نظر گرفته شده است. با استفاده از ASP.NET می توان هم اینترانت کوچک یک شرکت را ساخت و هم یک سایت وب تجاری خیلی بزرگ را طراحی و پیاده سازی نمود. مهمترین نکاتی که در طراحی این محصول در نظر گرفته شده است راحتی استفاده و بالا بودن کارائی و قابلیت آن می باشد. در زیر برخی ویژگیهای ASP.NET را بررسی می کنیم.

• صفحات ASP.NET کامپایل می شوند.

هنگامی که یک صفحه ASP.NET برای اولین بارتوسط یک مراجعه کننده به سایت فراخوانی می شود، آن صفحه ابتدا کامپایل شده و بر روی سرور نگهداشته می شود و در فراخوانی های بعدی از آن استفاده می شود. این بدین معنی است که صفحات ASP.NET خیلی سریع اجرا می شوند.

• صفحات ASP.NET با ابزارهای روی سرور ساخته می شوند.

با ابزارهای موجود در ASP.NET می توان صفحات پیچیده وب را براحتی طراحی نمود. بعنوان مثال با استفاده از ابزار DataGrid می توان به آسانی داده های موجود در یک بانک اطلاعاتی را تحت وب نمایش داد.

• مجموعهASP.NET عضوی از بدنه NET. است.

بدنه NET. دارای بیش از ۴۵۰۰ کلاس آماده جهت استفاده در ASP.NET است. این کلاس ها تقریبا هر نیازی را در برنامه نویسی برآورده می کنند. بعنوان مثال از این کلاس ها می توان جهت تولید تصاویر بر حسب تقاضا، به رمز درآوردن یک فایل و یا ارسال یک نامه استفاده کرد.

مقایسه ASP.NET و ASP کلاسیک

ASP.NET نسل بعدی ASP یا ASP کلاسیک است. اما این یک پیشرفت تکاملی است بطوریکه این دو فناوری تقریبا از یکدیگر متفاوتند. صفحات ASP با زبان های دستورالعمل نویسی مانند VBScript یا JScript ایجاد می شوند اما در ASP.NET ما یک فرایند کامل برنامه نویسی با زبانهای Visual Basic یا #C (سی-شارپ تلفظ شود) داریم. همچنین در ASP کلاسیک تنها پنج کلاس استاندارد (Request, Response, Application Session, Server) وجود دارد حال آنکه در ASP.NET می توان از بیش از ۴۵۰۰ کلاس استاندارد موجود در بدنه NET. بهره جست.همچنین علیرغم قدرت و امکانات زیاد و متعدد ASP.NET، استفاده از آن در مقایسه با ASP کلاسیک بسیار آسانتر است. بعنوان مثال با استفاده از چند ابزار در یک صفحه ASP.NET می توان یک صفحه بسیار پیچیده HTML بدست آورد که ساخت آن در ASP کلاسیک ممکن است نیاز به چند روز کار داشته باشد.

زبانهای برنامه نویسی در ASP.NET

شما در ASP.NET می توانید از هر زبان برنامه نویسی که با بدنه NET. سازگار باشد استفاده کنید. این زبانها عبارتند از Visual Basic.NET و #C و JScript.NET . این بدین معنی است که شما جهت نوشتن برنامه در ASP.NET نیاز به فراگیری زبان جدیدی ندارید و اگر یکی از زبانهای ویژوال بیسیک یا ++C یا جاوا را می دانید هم اکنون می توانید در ASP.NET برنامه بنویسید.از طرف دیگر تعدادی زبانهای دیگر توسط بعضی از شرکتهای فعال در این زمینه به مجموعه زبانهای استاندارد ASP.NET افزوده شده است. بعنوان مثال اگر مایل باشید حتی می توانید از PERL و COBOL هم در ASP.NET استفاده کنید.

ابزارهای ASP.NET

سالهاست که برنامه نویسان ویژوال بیسیک جهت ساخت فرم های خود از ابزارهای ویژوال بیسیک مانند TextBox و ListBox استفاده کرده اند. در ASP.NET هم شما می توانید از ابزارهای فراوان موجود در آن برای ساخت فرم ها و صفحات خود استفاده نمائید. در ASP.NET چهار دسته عمده از ابزارها موجود است:

• ابزارهای اصلی مانند TextBox، RadioButton، ListBox و Button.

• ابزارهای اعتباری برای حصول اطمینان از ورود و تائید صحت اطلاعات ورودی فرم ها.

• ابزارهای داده ای برای ارتباط با بانک اطلاعاتی و دستکاری داده.

• ابزارهای پیشرفته جهت نمایش عناصر پیچیده در واسط کاربر مانند تقویم و آگهی های تبلیغاتی.

با استفاده از Visual Studio.NET شما براحتی می توانید با چیدن تصویری این ابزارها بر روی فرم مورد نظر، صفحه دلخواه خود را بسازید. در صورت تمایل حتی می توانید در یک ویرایشگر ساده متن مانند Notepad برنامه مورد نظر را نوشته و از این ابزارها استفاده کنید.

ASP.NET با سیستم عامل های Windows 2000 (نسخه Server و Professional) و Windows XP کاملا سازگار است.

مقایسه ی php و asp.net

مقایسه و انتخاب ابزارهای توسعه نرم افزار همواره یکی از بحثهای داغ برنامه نویسان و توسعه دهندگان نرم افزار بوده است. از مقایسه C و پاسکال تا مقایسه VB و ++VC و Delphi و با ورود به عصر اینترنت مقایسه امکانات perl،پیتون،PHP،ASP و ASP.NET، JAVA  بحثهای بوده است که در فرومها و سایتهای تخصصی همواره به آن پرداخته شده است. البته خیلی اوقات این قضیه از یک بحث فنی تبدیل به بحثی صرفا براساس علاقه و تعصب برنامه نویسان تبدیل شده یا اینکه مقایسه تبلیغاتی برای نمایش ضعف رقیبان و قدرتهای یک ابزار خاص بوده است.

به نظرم مهم است که یک برنامه نویس و توسعه دهنده نرم افزار به زبانها و پلاتفرمهای توسعه نرم افزار صرفا به عنوان یک ابزار نگاه کند و براساس نیازهای کمپانی یا تیم نرم افزاری و نیازهای نرم افزار  پلاتفرم و ابزارهای لازم را انتخاب کنند. مباحثی مثل علاقه شدید به مایکروسافت یا ضدیت با آن به نظرم شیوه حرفه ای و درستی برای انتخاب ابزارهای طراحی و توسعه نرم افزار نیست. این روزها در ایران مقایسه و انتخاب دو زبان و تکنولوژی خاص یعنی PHP و ASP.NET بحث داغی هستند و البته با گذشت زمان تقریبا هر گروه (بیشتر براساس سیاست شرکتهایی که در آن کار میکنند) یکی از این تکنولوژی ها را به عنوان ابزار اصلی توسعه نرم افزار و سایتها انتخاب کرده است. بارها از من پرسیده شده است که کدامیک از این زبانها انتخاب بهتری است و دلایل آن چیست؟ به عنوان برنامه نویسیکه  در سالهای قبل  علاوه بر ASP با زبان PHP نیز کار می کردم و در این زمینه مقاله، سمینار معرفی کوچکی و فعالیتهای در انجمن سابق ایران PHP (مانند تابع سورت فارسی) داشته ام و همچنین در سالهای اخیر نیز  عموما از ASP.NET استفاده کردم و براساس تجربه و اطلاعات شخصی مقایسه مختصری درباره این زبانها را ادامه خواهم داشت.

پی اچ پی PHP

زبان PHP با هدف نوشتن اسکریپتهای وب نوشته شد. در واقع هدف فرار از پیچیدگیهای  Perl و  نوشتن CGI با زبانهایی مثل C و ارائه دستوراتی ساده برای طراحان صفحات وب بود.پی اچ پی اولیه زبانی با دستورات محدود و ساده بود که بیشتر برای کارهای ساده و برای طراحان وب سایتها و نه برنامه نویسان حرفه ای بود. این زبان کم کم پیشرفت کرد و بخصوص Open Source بودن آن باعث شد تسریع این حرکت شد. در مرحله اول تعداد دستورات و توابع این زبان گسترش پیدا کرد بطوریکه امروز نیز براحتی کارهای نسبت پیچیده ای (مثل کار با سوکتها یا تصاویر) با توابع این زبان قابل اجراست.همچنین از لحاظ معماری این زبان با پشتیبانی از شی گرایی پیشرفت  مهم دیگری داشته است. پی اچ پی به طور کلی یکی از زبانهای معمول برای نوشتن اسکریپتهای اجرایی در محیط یونیکس ، لینوکس (هرچند که در ویندوز نیز به خوبی اجرا می شود) و کار با نرم افزار مدیریت بانک اطلاعات MySQL است.

تکنولوژی  ASP.NET

دات نت نسل جدیدی از ابزارهای توسعه مایکروسافت است. دات نت فقط یک زبان نیست و در واقع یک فریم ورک یا پلاتفرم برای توسعه و اجرای نرم افزار است.دات نت شباهت زیادی با پلاتفرم جاوا دارد  و در واقع در رقابت با اوست. ASP.NET نیز نسل جدیدی از ASP کلاسیک در بستر دات نت است و از این جهت پیشرفت بسیار زیادی نسبت به ASP کلاسیک شاهد هستیم.با ASP.NET و با وجود کتابخانه غنی توابع و کلاسهای دات نت تقریبا هر کاری در وب امکان پذیر است. اگر چه مایکروسافت در معماری دات نت هدف اجرا در پلاتفرمها و سیستم عاملهای مختلف را  مد نظر داشته است اما حداقل تاکنون میتوان دات نت را یک ابزار توسعه در سیستم عامل ویندوز دانست. البته پروژه هایی برای شبیه سازی و انتقال دات نت به محیط لینوکس نیز وجود دارد که مهمترین آنها پروژه Mono است که پیشرفت قابل توجهی داشته است.انتظار می رود در آینده نزدیک ASP.NET در هر سیستم عامل و پلاتفرمی قابل اجرا باشد.

سیستم عامل

اگرچه اصولا انتخاب ابزار توسعه نرم افزار ارجحیت بیشتری بر انتخاب سیستم عامل دارد اما در دنیای واقعی قضیه به این سادگی نیست و گاهی برنامه نویس براساس سیستم عامل ابزار خود را انتخاب میکند. امروزه تقریبا دو بستر متفاوت داریم از طرفی سیستم عاملهای سرور ویندوز و از طرف دیگر  نسخه های مختلف  لینوکس و یونیکس. ویندوز ابزار رایج و آشنایی برای کاربران و  برنامه نویسان است و از طرفی یونیکس  سیستم عامل ارزان تر ( و البته حرفه ای) است. در ویندزو عموما ترکیبی از دانت نت،IIS، SQL Server داریم و در یونیکس PHPو Apache و MySql  و مشخص است که هزینه نهایی پیاده سازی و اجرای یک وب سایت در ترکیب لینوکسی ارزان تر است.پی اچ پی در ویندوز نیز قابل اجراست وبخصوص در نسخه های جدید PHP این اجرا شکل بهتری نیز گرفته است. در حال حاضر نسخه اولیه از Mono (دات نت در محیط لینوکس) قابل اجرا است اما حداقل به اندازه PHP رایج نیست. از طرفی نیز ASP.NET ترکیب ایده آلی برای کار با ویندوز و IIS است و در واقع هماهنگی و همخوانی این ابزارها در ویندوز (بخصوص اینکه همگی محصول یک شرکت هستند) شاید یکی از بهترین بسترهای توسعه نرم افزار و وب سایت در ویندوز را پدید می آورند.

معماری 

همانطور که اشاره شد پی اچ پی برای طراحان سایت و گریز از پیچیدگی های ابزارها و زبانهای آن روزگار ایجاد شده است و بنابراین PHP اولیه یک ابزار ساده و نه چندان پیچیده بوده است. البته PHP در این سالها ارتقاء پیدا کرده است اما هنوز نقصهای اولیه ای را دارد( مثلا با وجود شی گرایی هنوز دستورات و توابع زیادی از آن ارتباطی با شی خاصی ندارد و یا خاصیتهای حرفه ای شی گرا را ندارد.). اما دات نت فراتر از یک زبان است و مجموعه از کتابخانه های استاندارد و زبانهایی که تقریبا تمام قابلیتهای زبانهای روز دنیا را دارند. سینکس حرفه ای، استاندارد و جذاب #C و یا سینتکس ساده و کارآمد VB.NET و البته #J و ++C و چند زبان دیگر نیز وجود دارند. دات نت کاملا شی گرا است و معماری آن حرفه ای است و از این جهت با JAVA (آنرا را با جاوا اسکریپ اشتباه نگیرید) قابل مقایسه است. در واقع از لحاظ معماری JAVA و دانت نت پلاتفرمهایی با معماری Enterprise هستند و PHP زبانی ساده با تمرکز برای نوشت اسکریپهای وب. شرکت ZEND که در حال حاضر Engine اصلی PHP را ارائه میدهند و برخی شرکتهای دیگر  تلاشهایی برای ارتقاء و ایجاد فریم ورک حرفه ای تری برای PHP دارند اما در کل و از لحاظ مهندسی نرم افزار معماری  دات نت برتری محسوسی نسبت به PHP دارد.

در بعد دیگر ابزارهای کار با  دات نت و آموزه ها و پتانسیل دات نت نوشتن نرم افزارهای با معماری بهتر را امکان پذیر میکند و حتی بصورت پیش فرض معماری چند لایه در دات نت وجود دارد. همچنین  نرم افزارهای مهندسی نرم افزار مانند ابزار CASE Tools ، Rational و… همخوانی با دات نت دارند .

یکی از مهمترین تفاوتهای ASP.NET و PHP در شکل اجرای آنهاست. در PHP در هر بار اجرای اسکریپ کدهای PHP تفسیر می شود ولی در دانت نت یکبار کدها کامپایل می شوند و در دفعات بعد کدهای اجرایی هستند که  اجرا می شود. از این لحاظ بخصوص در نرم افزارهای تحت وب با حجم کد بالا اجرای کدهای کامپایل شده به مراتب سرعت بیشتری خواهند داشت. البته شرکتهای مختلفی برای PHP ابزارهای accelerator و caching نوشته اند اما به هر حال در دات نت اینکار بصورت ذاتی و بدون نرم افزار خاص دیگری انجام می گیرد.

سرعت توسعه نرم افزار

اگر قرار باشد فقط چند خط برای نوشتن در صفحه یا گرفتن پارامتری از کاربر داشته باشیم مطمئنا نوشتن با PHP ساده تر و سریعتر خواهد بود. اما هدف دات نت تسریع در نوشتن سایتهای بزرگ با فرمها و اطلاعات متعدد است. در ASP.NET از طراحی صفحاتی که web form نامیده می شوند تا حتی دسترسی به بانک اطلاعات و ماهیتهای مختلف اطلاعات، نمایش اطلاعات (مانند جداول)  ابزارهای بصری وجود دارند که این در نهایت کار را بسیار ساده تر میکند همچنین برخی مسائل را به راحتی میتوان به فریم ورک دانت نت سپرد (مانند Caching، اعتبار سنجی اطلاعات ورودی   authentication و…) همچنین استفاده از کتابخانه غنی دانت نت باعث می شود که نیاز چندانی به استفاده از کتابخانه توابع خارجی نباشد که این در توسعه نرم افزار بصورت تیمی و پشتیبانی یک مزیت به شمار می رود. البته در PHP نیز ابزارهای برای تسریع طراحی و نوشتن اسکریپتها وجود دارند اما هر کدام برای شرکتهای مختلفی است و شکل کار متفاوت است.

سرعت اجرای نرم افزار

همانطور که اشاره شده صفحات و کدهای ASP.NET کامپایل می شوند و قابل حدس است سرعت اجرای آنها نسبت به اجرای اسکریپت PHP بیشتر است و البته این کاملا درست است. اما در واقع شرایط به همین سادگی نیست. در اسکریپتهای PHP مفسر سریعا کدهایی که بایستی تفسیر شوند را اجرا کرده و خروجی را مرورگر کاربر می فرستند. اما در ASP.NET به غیر از کدهای نوشته شده توسط برنامه نویس چندین ماژول در لایه های دیگری نیز اجرا می شوند. (مثلا تنظیمات را میخوانند. خروحی کنترلهای وب فرمها  را تولید (Generate) میکنند،اعتبار سنجیها را انجام میدهند) و اینها در سرعت اجرا موثر خواهند بود(البته امکاناتی برا حذف و بهبود سرعت وجود دارد) بنابراین با توجه به تجربه شخصی در اسکریپتهای ساده (در حد چند ده خط) و تعداد دفعات اجرای معمول سرعت اجرای PHP و ASP.NET آنقدرها اهمیت خاص ندارد. توجه کنید که به هر حال نرم افزارهای بر تسریع اجرای PHP نیز وجود دارند. اما در اجرای نرم افزارهای بزرگتر مانند web  application هایی که از دهها یا صدها کلاس و لایه های مختلف تشکیل شده اند مطمئنا برتری با نرم افزارهای کامپایل شده خواهد بود. البته میدانید که در نسخه های کامپایل شده  نیازی به قرار دادن سورس کدها در وب سایت یا ارائه آن به مشتری نیست که این قضیه برای بسیاری شرکتها (بخصوص برای حمایت از حقوق نرم افزار و همچنین امنیت) یک مزیت به حساب می اید.

یادگیری

پی اچ پی با هدف اولیه سادگی برای استفاده و یادگیری نوشته شده است و تاکنون نیز هدف را منظور کرده است بنابراین میتوان به سادگی گفت که یادگیری و استفاده از PHP ساده تر از  ASP.NET (حتی با وجود زبانی با سینتکس  ساده VB.NET) است.استفاده از ASP.NET نیازمند آشنایی با مفهوم اولیه شی گرایی و همجنین پیچیدگیهای خاص دانت (مثل رویدادهای اجرای صفحات به جای اجرای خطی) است. در واقع یادگیری و استفاده از ASP کلاسیک ساده تر از  ASP.NET و قابل قیاس با یادگیری PHP است. عموما طراحان وب سایت به دلیل سادگی استفاده و یادگیری PHP آنرا فرا میگیرند و برنامه نویسان حرفه ای و مهندسان نرم افزار هم علاقه بیشتر به دات نت و JAVA دارند.

همچنین یک نکته قابل توجه در PHP وجود هزاران خط کد و اسکریپت آماده به زبان PHP است که تقریبا در هر زمینه ای وجود دارند (از کارهای ساده با بانک اطلاعاتی تا کار با تصاویر،سوکتها، وب سرویسها، XML و …) این قضیه باعث شده بسیاری از برنامه نویسان PHP به جای نوشتن کدها بسیاری اوقات اسکرپیتهای آماده موجود در اینترنت را سر هم کنند  و به هدف خود برسند و یا شیوه کار را فرا بگیرند. البته کم کم در مورد دانت نیز این قضیه در حال اتفاق است و سایتهایی که کدهای نمونه یا نرم افزارهای آماده با سورس ارائه میکنند در حال افزایش هستند.

بازار کار

دو معیار برای سنجش بازار کار وجود دارد یکی سایتهای خارجی و دیگری بازار ایران، اگر نگاهی به ساده به سایتهای کاریابی خارجی مانند (مونستر یا Yahoo Job) داشته باشید خواهید دید که هم برای برنامه نویسان PHP و هم برای ASP.NET موقعیتهای شغلی وجود دارد اما نکته قابل توجه حقوق بالاتر و همچنین شرکتهای معتبری هستند که برای استخدام  برنامه نویسان ASP.NET آگهی داده اند.

در ایران نیز عموما شرکتهای معتبر نرم افزاری ( که به شکل سنتی در پلاتفرم وابسته به ویندوز) فعالیت می کنند علاقه مند به استخدام برنامه نویسان ASP.NET هستند. و شرکتهایی که روی ترجمه،ارائه ابزارهای پشتیبان یا تغییرات روی نرم افزارهای Open Source معروف خارجی کار میکنند و یا نیازمند به پیاده سازی سایتهایی در لینوکس هستند علاقمند به استخدام برنامه نویسان PHP هستند. اگرچه این یک نظر شخصی است اما براساس تجربه شخصی حقوق برنامه نویسان ASP.NET در ایران نیز در مقایسه بیشتر است.

شاید سوال پیش آید که چرا با وجود برخی برتریهای ASP.NET همچنان تعداد زیادی برنامه نویس PHP و نرم افزارهای تحت وب با این زبان نوشته می شود. یکی از مهمترین دلایل آن همانطور که قبلا اشاره شد ارزانی کار با ترکیب PHP و لینوکس است که به آن اختصارا LAMP گفته می شود. اجرا و طراحی یک وب در بستر ویندوز با در نظرگرفتن هزینه لایسنس ویندوز سرور، SQL Server و محیط توسعه Visual Studio در قیاس با ارزانی و حتی رایگان بودن سیستم عامل لینوکس و MYSql و محیطهای توسعه PHP دلیل مهمی برای انتخاب ترکیب PHP و لینوکس بخصوص برای برنامه نویسان مستقل در خارج از کشور است. اما قاعدتا در مورد پروژه ای بزرگ و شرکتهای بزرگ نرم افزاری این هزینه ها آنقدر قابل توجه نیست و بنابراین این شرکتها استفاده از پلاتفرمهای حرفه ای تر مانند JAVA و دات نت را انتخاب می کنند.

دیگر موارد

یکی از خصوصیات PHP کدباز یا Open Source بودن آن است که  توسط طرفداران PHP به عنوان یک مزیب به شمار می رود. این قضیه این امیدواری را ایجاد میکند که PHP با عدم پشتیبانی در آینده مواجه نخواهد بود و به روند رو به توسعه خود ادامه خواهد داد اما از طرفی با نگاه واقعگرایانه خواهیم دید که مفسر اصلی و برخی از مهمترین ابزارهای PHP توسط یک شرکت خاص (Zend )عرضه می شود و در عین حال مایکروسافت توانسته پیشرفت قابل توجهی در مقایسه در ابزارها و بسترهای توسعه نرم افزار خود ایجاد کند.همچنین نکته ای که برای فارسی زبانان قابل توجه است پشتیبانی ذاتی دات نت از یونی کد و رشته های  فارسی است. در PHP اگرچه ارسال یا دریافت اطلاعات فارسی امکان پذیر است اما در واقع خود PHP درک درستی از آن ندارد و این قضیه در زمان کار پیچیده با رشته ها مشخص تر است.

 

کدامیک را انتخاب کنیم؟

انتخاب یک ابزار یا بستر توسعه نرم افزار (یا وب سایت) همانطور که گفته شد بایستی براساس نیاز نرم افزار یا وب سایت باشد. بطور مثال اگر لازم است سایت در سرور لینوکس اجرا شود و یا در آینده سایت از یک محیط (مثل ویندوز به یونیکس) منتقل شود با توجه به شرایط روز شاید بهتر باشد PHP انتخاب شود. اگر قرار است پروژه ای بزرگ با استفاده ازمتدها و ابزارهای مهندسی نرم افزار پیاده سازی شود باشد  و هزینه اجرا ارجحیت نخست نیست شاید  ASP.NET گزینه بهتری باشد. در عین حال فکر میکنم دانشجویان و مهندسان نرم افزار ایرانی با توجه به بازار خوبی که در خارج از کشور و همچنین ایران وجود دارد و اینکه یادگیری دانت فقط پیاده سازی صفحات وب نیست و امروز یکی از رایجترین ابزارهای توسعه نرم افزارهای تحت ویندوز است یادگیری دات نت را به عنوان یک گزینه مهم بایستی مد نظر داشته باشند.

زبانهای برنامه نویسی دسک تاپ

بیسیک

زبان بیسیک از سری زبان های است که توسط شرکت مایکروسافت تهیه گردید و قابلیت زیادی داشت ولی به هر حال قدرت رقابت با محضول شرکت بورلند یعنی پاسکال را نداشت چرا که بورلند پاسکال دارای یک مترجم یا کامپایلر را داشت که این امکان را برای کاربر به وجود می**آورد که بتواند بدون نیاز به خود زبان برنامه نویسی برنامه را اجرا کند و دیگر مزیت این کامپایلر این است که زمانی که شما دستورات را به طور کامل تایپ کردید کامپایلر یکجا برنامه را به زبان ماشین (۰و۱) تبدیل می**کند و سرعت برنامه نیز بالا تر میرود حال آنکه بیسیک که یک مفسر محسوب می*شود کدها را بهصورت خط به خط به ماشین تبدیل می**کند نسخه*های تکمیلی بیسیک : کوییک بیسیک کیوبیسیک ویژوال بیسیک را می**توان نام برد که قابلیت شی گرا یی دارند وهمینطور دارای کامپایلر نیز هستند.

دلفی

دِلفی (Delphi) یا به تعبیری ویژوآل پاسکال – یک زبان برنامه*نویسی است و بستری برای توسعهٔ نرم*افزار که شرکت بورلند آن را تولید کرده است. این زبان، در بدو انتشار خود در سال ۱۹۹۵، به عنوان یکی از نخستین ابزارهایی مطرح شد که از توسعهٔ نرم*افزار بر مبنای متدولوژی RAD پشتیبانی می*کردند؛ یعنی تولید و توسعهٔ سریع برنامه*های کاربردی.

این نرم افزار بر مبنای پاسکال شی*گرا بوده و از این زبان مشتق شده است. البته بورلند نسخه*ای از دلفی و سی*پلاس*پلاس*بیلدر را برای لینوکس به نام کایلیکس (Kylix) ارائه کرد که مورد استقبال توسعه دهندگان نرم*افزارهای لینوکس قرار نگرفت. نرم*افزارهای دلفی در ابتدا به صورت مستقیم از کتابخانه*های ویندوز و کتابخانهٔ مخصوص خود به نام VCL استفاده می*کرد، اما پس از نسخه ۶ دلفی، امکانات استفاده از دات*نت هم به آن اضافه شد. در حال حاضر می*توان دلفی را یکی از رایج*ترین زبان*های ممکن در ایران دانست.

زبانِ دلفی که پیشتر بنام Object-Pascal یا پاسکال شیءگرا خوانده می*شد و برای طراحی نرم*افزاهای تحت ویندوز به کار می*رفت، امروزه چنان توسعه یافته است که برای تولید نرم*افزارهای تحت سیستم*عاملِ لینوکس و دات*نت نیز به کار می*آید. بیشترین کاربرد دلفی در طراحی برنامه*های رومیزی و پایگاه دا*ده*ها* است، اما به عنوان یک ابزارِ «چند- منظوره»، برای طراحی انواع گوناگونی از پروژه*های نرم*افزاری نیز مورد استفاده قرار می*گیرد

جاوا

جاوا شباهت*هایی به سی*پلاس*پلاس دارد، ولی قابلیت انتقال آن بهتر است و استفاده از آن ساده تر از ++c است. همچنین مدیریت حافظه نیز توسط خود ماشین مجازی جاوا انجام می*شود. طراحی این زبان به گونه ایست که دارای اطمینان بسیاری بوده و وابسته به سیستم عامل خاصی نیست. و دلیل این موضوع این است که جاوا یک ماشین مجازی در سیستم شما راه می*اندازد و برنامه*ها را در آن ماشین مجازی اجرا می*کند. این ماشین مجازی «ماشین مجازی جاوا» یا به اختصار Jvm نامیده می*شود. البته راه انداختن یک ماشین مجازی باعث دو مشکل می*شود. هنگامی که نرم*افزار شما در یک ماشین مجازی اجرا می*شود سرعت کمتری خواهد داشت، همچنین شما نیاز دارید قبل از اجرای برنامه*های جاوا یکبار سیستم مجازی جاوا را که حجم نسبتاً بالایی دارد، از اینترنت بارگذاری و یا از جای دیگری تهیه و نصب کنید ولی مزیت آن عدم وابستگی به سیستم عامل مقصد است.

 

ویژوال سی / سی پلاس پلاس

آنچه ویژوال سی خوانده می**شود، در واقع یک محیط توسعه مجتمع (یا IDE) است که در مایکروسافت برای تسهیل کار برنامه*نویسی به زبان سی یا سی++ طراحی و نوشته شده است. محیط ویژوال سی بخشی از مجموعه*ای بزرگ*تر به نام Microsoft Visual Studio است که اختصاصا به سی می*پردازد. ویژوال سی مجموعه به هم پیوسته*ای است که تمامی زنجیرهٔ ابزار توسعهٔ برنامه را یکجا گرد آورده. زنجیرهٔ ابزار فوق*الذکر شامل ویرایشگر، کامپایلر، لینکر، ابزار میک، دیباگر و اسمبلر مخصوص ویژوال سی می**باشد که هریک علاوه بر داشتن خواص برنامه*های قدیمی*تر، دارای قابلیت*های منحصر به فردی هم می*باشند. محیط ویژوال سی همانند بسیاری از محیط*های برنامه*سازی جدید مجهز به ویژگی ارزشمند خودتکمیلی است.

ویژوال سی++ درون*کار، یا ++eMbedded Visual C یکی از محیط*های طراحی نرم*افزار محصول شرکت مایکروسافت است که بر مبنای محیط مشابه برای رایانه شخصی، یعنی ویژوال سی، طراحی شده است. این محیط جهت سهولت نوشتن و کامپایل برنامه برای ویندوز سی*ایی (Windows CE، سیستم عامل شرکت مایکروسافت برای سیستم*های نهفته) در محیط ویندوز NT یا XP است. این نرم*افزار قابلیت کراس کامپایل (Cross-Compile) از کامپیوتر شخصی بر روی بسیاری از سیستم*های درون*کار شناخته شده یا سفارشی را داراست.

 

ویژوال بیسیک.نت

ویژوال بیسیک.نت یکی از زبانهای معرفی شده جهت نوشتن برنامه*های مبتنی و با استفاده از چهارچوب دات.نت است. دستورات این زبان مشابه بیسیک است. چون این زبان جزو مجموعه چهارچوب دات.نت است کد تولید شده توسط آن(msil)در بیشتر مواقع فرقی با کدهای تولید شده توسط سی*شارپ ندارد و کتابخانه*های تولید شده در هر یک از این دو زبان مستقیماً در دیگری قابل استفاده است.اشتباهی که معمولاً در مورد ویژوال بیسیک دات.نت می*شود این است که با توجه به ویژگی های بیسیک کلاسیک که زبانی ساده و مخصوص غیرحرفه*ای*ها بود، این زبان نیز غیرحرفه*ای تلقی می*شود، در حالی که قابلیت*های آن کاملاً با سی*شارپ برابر است. در ضمن زبان مفسری نیست.

 

ویژوال فاکس*پرو

نرم افزاری است که بوسیله آن میتوان بانکهای اطلاعاتی را تهیه کرد یک از بهترین ابزارهای

برنامه نویسی را دارا می باشد که توسط شرکت مایکروسافت ارائه گردیده است در حال حاضر

نسخه ۹ آن تهیه شده و در آینده نسخه جدید این نرم افزار با نام سدنا به بازار عرضه خواهد شد .

البته این نرم افزار دارای قدرت بسیار در تولید نرم افزارهای بانک اطلاعاتی هست که دارای برترهای بسیاری بر سایر زبانها هست ولیکن اشتباهی است این است که بیشتر قدرت زبانهای را باهم قیاس می کنند حال آنکه باید دقت کنید که زبانهای دیگر همچون دلفی – وی بی یا … خود از یک دیتابیس اینجین دیگر (همچون اکسس – پاراداکس و …) جهت مدیریت بانک اطلاعات استفاده می کنند که دیتابیس اینجنین داخلی ویژوال فاکس بسیار برتر از آنها هست

ولیکن متاسفانه یا در حقیقت یکی از پوئن های فاکس آن است که به راحتی می توان آن را یاد گرفت و به کار بست ولی به دلیل تولید نرم افزارهای ناقص و دارای عیب و ایراد بسیار توسط برنامه نویسان آماتور (مخصوصا در دوران داس) باعث ایجاد بدنامی این زبان بسیار قدرتمند شده حال آنکه اینچنین نیست

و واقعا در تولید نرم افزارهای بانک اطلاعاتی بسیار قدرتمندتر از سایر زبانها هست

شاید بخواهید آنها را قیاس با دیتابیس اینجنین های قدرتمندی همچون ms-sql یا mysql بکنید

که می توان در پاسخ گفت دقت کنید که خود ویژوال فاکس نیز می توانید به راحتی به آنها کانکت شود و از قدرت آنها نیز بهرهمند شود ولی به این نکته نیز دقت کنید که بسیاری از نرم افزارهای ما بیشتر به صورت single user استفاده می شود و موارد شبکه دارای استفاده های خاص هستند.

که ویژوال فاکس نیز جهت استفاده در محیط شبکه و ایجاد نرم افزارهای قدرتمند تحت شبکه با استفاده از دیتابیس اینجنین های همچون اوراکل یا sqlserver یا mysql را نیز داراست.

و محیط و دستورات داخلی آن نیز بسیار کارآمد و راحت جهت کنترل کلیه امور توسط برنامه نویس هست.

 

Microsoft .NET

جدید ترین نسخه طراحی شده سیستم معماری نرم افزار توسط Microsoft که امکانات بسیاری را در اختیار برنامه نویسان (بخصوص در زمینه طراحی نرم افزارهای مبتنی بر اینترنت) قرار میدهد. در واقع شاید بتوان گفت که این شاید اولین گام اساسی شرکت Microsoft در ارتباط با این تکنولوژی باشد؛ به عبارتی، Microsoft در تلاش بوده که یک سیستم جدید معماری نرم افزار را در اختیار برنامه نویسان قرار دهد که میتوان از NET. به عنوان اولین نتیجه این تلاشها نام برد. این سیستم نرم افزاری شاید بهترین و کاملترین گزینه برای کسانی است که میخواهند برنامه هایی برای ابزارهای مورد نظر خود ایجاد نمایند که بتوانند توانایی های مرتبط با اینترنت را نیز در آنها بگنجایند. برای مثال این تکنولوژی جدید میتواند این توانایی را به کاربران کامپیوترهای شخصی (PC) بدهد که بتوانند به راحتی با سایر ابزارهای بیسیم (Wireless) با استفاده از کدهای خاص ارتباط برقرار نمایند. هر طراح نرم افزار و برنامه نویسی میتواند مطمئن باشد که با یادگیری این سیستم جدید – بدلیل توانایی های این سیستم برای برقراری ارتباط با سایر ابزار هوشمند و ابزارهای اطلاعاتی – به توانایی های بیشتری در زمینه طراحی سیستم های نرم افزاری کامپیوتری خواهد رسید. این موضوع یکی از دلایلی است که باعث شده است که این سیستم معماری نرم افزار جدید توسط Microsoft ایجاد شود.

 

#C

این زبان برنامه نویسی یک زبان ساده، پیشرفته و دارای امکانات کامل تکنیک های برنامه نویسی شی گرا میباشد که شباهت زیادی به زبانهای C و ++C دارد. #C (که آنرا به نام C شارپ نیز میشناسند) به دلیل اینکه به عنوان یک عضو جدید از خانواده زبانهای مشابه C ایجاد شده است، کاملا برای برنامه نویسان آشنا به این زبانها شناخته شده خواهد بود. این زبان در واقع به صورت کاملا اختصاصی برای استفاده از امکانات Microsoft .NET Framework نوشته شده است. NET Framework. مجموعه ای متشکل از یک محیط اجرایی که تحت عنوان Common Language Runtime) CLR) شناخته میشود و همچنین مجموعه کاملی از توابع و کلاسهای آماده، میباشد که میتوان از آن در نوشتن برنامه هایی به زبانهای مختلف استفاده نمود. زبان برنامه نویسی #C در واقع در تلاش است که راحتی و ساده بودن زبان Visual Basic را همراه با قدرت و توانایی های C++ در اختیار برنامه نویسان قرار دهد. این زبان به عنوان یکی از بخشهای مجموعه Visual Studio 7 توسط شرکت Microsoft عرضه شده است که این مجموعه نرم افزاری شامل زبانهای VB .NET و VC++ .NET و همچنین زبانهای اسکریپت نویسی VB Script و JScript میباشد و همه این زبانها نیز قابلیت استفاده از توانایی های NET Framework. را دارا میباشند. #C خود دارای کلاسهای آماده خاصی نمیباشد اما برنامه نویسان، با توجه به آنکه با زبان جدیدی کار میکنند، به راحتی این توانایی را خواهند داشت که بتوانند از توابع و کلاسهای نوشته شده در سایر زبانها مانند Visual Basic و ++Visual C در برنامه های خود استفاده کنند. این زبان همچنین قابلیت های خاصی برای نوشته برنامه هایی که از امکاناتی مانند XML و SOAP در آنها استفاده میشود، دارد.

 

Visual C# .NET

این زبان را به عنوان یک گزینه خوب میتوان به برنامه نویسان مبتدی و یا متوسطی که تا حدودی با یکی از زبانهای Java و یا C++ آشنایی دارند، معرفی نمود. یک زبان پیشرفته که با استفاده از امکانات محیط برنامه نویسی بسیار عالی میتواند برنامه نویسی نرم افزارهای تحت ویندوز که از تکنولوژی NET. استفاده میکنند همچنین سرویس ها وب مبتنی بر XML و همچنین نرم افزارهای اینترنتی را بسیار راحت نماید.

 

پرل:

زبان پرل در سال ۱۹۸۷ به وسیله لاری وال برای خودکار سازی برخی از برنامه های مدیریتی یونیکس به وجود آمد .اکنون این زبان به محیطی پر طرفدار برای ایجاد

مجموعه گسترده ای از برنامه های کاربردی تبدیل شده است . هرچند نوشتن اسکریپت کوچک برای برنامه های ساده, نسبتا آسان است .با این همه این زبان انقدر قدرتمندهست تا بهترین برنامه نویسان را راضی نگهدارد .

پل هافمن در کتاب (perl for dummies) می نویسد ((زبانهای دیگر تلاش می کنند تا شکیل یا بسیار کوچک باشند اما پرل سعی دارد کامل بوده و کاربردی ساده داشته باشد . )) وال از برنامه نویسان جهان برای نوشتن کد منبع باز و ماجولهای افزودنی در خواست همکاری کرد به همین دلیل پرل قابلیتهای فراتراز ریشهای مدیریتی سیستم خود دارد .

این زبان شامل یک محیط قدرتمند اشکال زدایی است و ماجولهای آن به اجرای اموری چون پردازش داده های html و xml کمک می کنند .

در وافع پرل زبان مفسر داری است که برای کار بر روی فایلهای متنی مناسب است .زبان پرل را برابر با زبان قدرتمند C می دانند بیراه هم نیست چون ساختار زبان پرل

شبیه زبان C است .

در ضمن در ایران هم به خاطر این زبان بهتون پول نمی دن ولی اگر باهاش کار کنین انوقت خواهین فهمید پرل چگونه زبانی است .


aks

نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:








تاریخ: جمعه 6 ارديبهشت 1392برچسب:,
ارسال توسط سعید کمالی
آخرین مطالب

آرشیو مطالب
پيوند هاي روزانه
امکانات جانبی

نام :
وب :
پیام :
2+2=:
(Refresh)

<-PollName->

<-PollItems->

آمار وب سایت:  

بازدید امروز : 35
بازدید دیروز : 23
بازدید هفته : 35
بازدید ماه : 126
بازدید کل : 7335
تعداد مطالب : 80
تعداد نظرات : 47
تعداد آنلاین : 1





خطاطي نستعليق آنلاين
Google

saeed‏
‎کل اینترنت

کد نمایش آب و هوا

کد نمایش آب و هوا

کدهای جاوا اسکریپت